package com.hxk.ioc.config;

import com.hxk.ioc.bean.Pink;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;

/**
 * 通过BeanDefinition注册类
 */
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {

    /**
     *  手动注册bean
     * @param importingClassMetadata 当前类的注解类
     * @param registry BeanDefinition注册类；
     *                 把所有需要添加到容器中的bean；调用BeanDefinitionRegistry.registerBeanDefinition手工注册进来
     */
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {

        //指定Bean定义信息；（Bean的类型，Bean。。。）
        RootBeanDefinition beanDefinition = new RootBeanDefinition(Pink.class);
        //注册一个Bean，指定bean名
        registry.registerBeanDefinition("pink",beanDefinition);
    }
}
